home *** CD-ROM | disk | FTP | other *** search
/ Shareware Games Galore! / Shareware Games Galore!.iso / arcade / gameser5 / kaleid.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1982-03-26  |  2.5 KB  |  96 lines

  1. 135  DEFINT A-Z
  2. 1000  REM  KALEIDOSCOPE
  3. 1010  REM PATRICK LEABO--TUSCON
  4. 1020  REM 3-14-82
  5. 1030  KEY OFF:POKE 106,0
  6. 1040  DIM MT(25)
  7. 1045  RANDOMIZE VAL(RIGHT$(TIME$,2))
  8. 1050  CH$(1)="LINE":CH$(2)="WHILE":CH$(3)="WEND":CH$(4)="CSRLIN"
  9. 1060  SCREEN 0,1:WIDTH 80:WIDE = 80
  10. 1065  DEF SEG = 0:IF (PEEK(&H410) AND &H30) <> &H30 THEN WIDTH 40:WIDE = 40
  11. 1066  DEF SEG
  12. 1070  REM START
  13. 1075  LOCATE ,,0
  14. 1080  A= 31:B= 15:X1= 16:Y1= 8
  15. 1090  A= INT (RND (1)* 20+ 19):B= INT (RND (1)* 10+ 13)
  16. 1100  RESTORE 1120
  17. 1110  FOR N= 0TO 7:READ DX(N):READ DY(N):NEXT 
  18. 1120  DATA 1,0,1,1,0,1,-1,1,-1,0,-1,-1,0,-1,1,-1
  19. 1130  FOR N= 0TO 7:READ NT(N)
  20. 1140  NEXT 
  21. 1150  DATA 1,3,5,6,8,10,12,13
  22. 1160  FOR N= 0 TO 24:MT(N)=N+1:NEXT
  23. 1170  FOR CC= 0 TO 12:GOSUB 1720:NEXT:CLS
  24. 1180  FOR NN= 1TO 50
  25. 1189  REM DRAW LOOP
  26. 1190  DI= INT (8* RND (1))
  27. 1200  IF RND (1) < 0.25 THEN CH$=CH$(4* RND (1)+1):GOSUB 1600
  28. 1205  IF RND(1) < 0.25 THEN CC=CC+1:IF CC>7 THEN CC=0 ELSE COLOR CC,0
  29. 1210  GOSUB 1590
  30. 1220  FOR N= 1TO INT (RND (1)* 8)
  31. 1230  X1= X1+ DX(DI):Y1= Y1+ DY(DI)
  32. 1240  IF X1< 1 THEN X1= A:GOTO 1260
  33. 1250  IF X1> A THEN X1= 1
  34. 1260  IF Y1< 1 THEN Y1= B:GOTO 1280
  35. 1270  IF Y1> B THEN Y1= 1
  36. 1280  X2= 40- X1:Y2= 24- Y1
  37. 1290  LOCATE Y1,X1:PRINT CH$;:IF WIDE = 80 THEN LOCATE Y1,X1+40:PRINT CH$
  38. 1300  LOCATE Y1,X2:PRINT CH$;:IF WIDE = 80 THEN LOCATE Y1,X2+40:PRINT CH$
  39. 1310  LOCATE Y2,X1:PRINT CH$;:IF WIDE = 80 THEN LOCATE Y2,X1+40:PRINT CH$
  40. 1320  LOCATE Y2,X2:PRINT CH$;:IF WIDE = 80 THEN LOCATE Y2,X2+40:PRINT CH$
  41. 1330  PRINTCHR$(11):PRINT
  42. 1340  NEXT :NEXT 
  43. 1350  GOTO 1070
  44. 1360  REM  VECTORS
  45. 1370  FOR CC= 0TO 12:GOSUB 1720:NEXT 
  46. 1380  CC= INT (63* RND (1))
  47. 1390  IF RND (1)= 0.5THEN CC= 1
  48. 1400  IF RND (1)> 0.5THEN CC= CCAND 15
  49. 1410  MA= CCAND 56
  50. 1420  PLOT 6,CC,12:CC= CCAND 15
  51. 1430  IF CC> 12THEN CC= 12
  52. 1440  GOSUB 1790
  53. 1450  A= INT (RND (1)* 50+ 60):B= INT (RND (1)* 50+ 60):GOSUB 1580
  54. 1460  FOR N= 1TO 50
  55. 1470  X1= X3:X2= X4:Y1= Y3:Y2= Y4:GOSUB 1580
  56. 1480  DI= INT ((X3/ A)* 8):GOSUB 1790
  57. 1490  PLOT 2,253,X1,Y1,242,X3,Y3,255
  58. 1500  PLOT 2,253,X1,Y2,242,X3,Y4,255
  59. 1510  PLOT 2,253,X2,Y1,242,X4,Y3,255
  60. 1520  PLOT 2,253,X2,Y2,242,X4,Y4,255
  61. 1530  IF RND (1)< 0.25THEN CC= INT (8* RND (1)):GOSUB 1720:PLOT 6,CCOR MA
  62. 1540  IF RND (1)< 0.1THEN PLOT 31
  63. 1550  NEXT 
  64. 1560  FOR CC= 0TO 12:GOSUB 1720:NEXT 
  65. 1570  CC= INT (63* RND (1)):GOTO 1070
  66. 1580  X3= INT (A* RND (1)):Y3= INT (B* RND (1)):X4= 127- X3:Y4= 127- Y3:RETURN 
  67. 1590  PLAY "MFL16N"+STR$(NT(DI)+39):RETURN
  68. 1600  OK= OK+ 1:IF OK> 2 THEN OK= 0
  69. 1610  ON OK GOTO 1660,1690
  70. 1620  NS= 4:GOSUB 1710
  71. 1630  NS= 0:GOSUB 1710:NS= 2:GOSUB 1710
  72. 1640  NS= 4:GOSUB 1710:NS= 7:GOSUB 1710
  73. 1650  RETURN 
  74. 1660  NS= 1:GOSUB 1710:NS= 3:GOSUB 1710
  75. 1670  NS= 4:GOSUB 1710:NS= 6:GOSUB 1710
  76. 1680  RETURN 
  77. 1690  NS= 0:GOSUB 1710:NS= 3:GOSUB 1710
  78. 1700  NS= 5:GOSUB 1710:NS= 7:GOSUB 1710:RETURN 
  79. 1710  PLAY "L24N"+STR$(NT(NS)+39):IF INKEY$ = CHR$(27) THEN CHAIN "MENU",1000 ELSE RETURN
  80. 1720  REM  SOUNDS
  81. 1730  NS= 0+ CC:GOSUB 1780
  82. 1740  NS= 4+ CC:GOSUB 1780
  83. 1750  NS= 7+ CC:GOSUB 1780
  84. 1760  NS= 12+ CC:GOSUB 1780
  85. 1770  RETURN 
  86. 1780  PLAY "L24N"+STR$(MT(NS)+26):RETURN
  87. 1790  ON DI+ 1GOTO 1800,1800,1820,1820,1840,1840,1870,1870
  88. 1800  NS= 0+ CC:GOSUB 1780:RETURN 
  89. 1810  NS= 2+ CC:GOSUB 1780:RETURN 
  90. 1820  NS= 4+ CC:GOSUB 1780:RETURN 
  91. 1830  NS= 5+ CC:GOSUB 1780:RETURN 
  92. 1840  NS= 7+ CC:GOSUB 1780:RETURN 
  93. 1850  NS= 9+ CC:GOSUB 1780:RETURN 
  94. 1860  NS= 11+ CC:GOSUB 1780:RETURN 
  95. 1870  NS= 12+ CC:GOSUB 1780:RETURN 
  96.